package part9;

/**
 * @author wcj
 * @Date 2021/5/17 17:34
 * @Version 1.0
 */
public class Part96 {
}

interface I1 {

    /**
     * f
     */
    void f();
}

interface I2 {

    /**
     * f
     *
     * @param i
     * @return
     */
    int f(int i);
}

interface I3 {

    /**
     * f
     *
     * @return
     */
    int f();
}

class Cup {
    public int f() {
        return 1;
    }
}

class C2 implements I1, I2 {

    @Override
    public void f() {

    }

    @Override
    public int f(int i) {
        return 0;
    }
}

class C3 extends Cup implements I2 {
    @Override
    public int f(int i) {
        return 0;
    }

    @Override
    public int f() {
        return super.f();
    }
}

class C4 extends Cup implements I3 {
    @Override
    public int f() {
        return super.f();
    }
}

/**
 * 因为仅仅通过返回值类型无法区分方法重载，所以编译器报错
 * 实际开发中避免这种问题
 */
//class C5 extends Cup implements I1 {
//
//}